﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using SharedGenomics.Domain;

namespace SharedGenomics.Annotations
{
    [Serializable]
    public class KeggPathwayAnnotation : IAnnotation
    {
        private List<KeggPathway> _pathways;

        public KeggPathwayAnnotation(IEnumerable<KeggPathway> pathways)
        {
            this._pathways = new List<KeggPathway>();
            this._pathways.AddRange(pathways ?? Enumerable.Empty<KeggPathway>());
        }

        public ICollection<KeggPathway> Pathways
        {
            get { return new System.Collections.ObjectModel.ReadOnlyCollection<KeggPathway>(this._pathways); }
        }

        public AnnotationKey AnnotationKey
        {
            get { return AnnotationKey.KeggPathway; }
        }

        public string Description
        {
            get { return "KeGG pathway"; } // TODO: Better description
        }

        public string EncodedKey
        {
            get
            {
                return "<annotation type=\"KeggPathway\"/>"; // TODO: What reference should be here, if any?
            }
        }
    }
}
